package com.wicket.okrapp.integration.dto;

import com.wicket.okrapp.common.dto.BaseDto;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import javax.validation.constraints.NotNull;
import lombok.Data;

/**
 * @desc ImplementCalcReportScoreComReqDto
 * @使用场景
 */
@Data
public class ImplementCalcReportScoreComReqDto
  extends BaseDto
  implements Serializable {

  /**
   * 数据对象批次标识
   */
  @NotNull(message = "数据对象批次标识不能为空")
  @ApiModelProperty("数据对象批次标识")
  private String dataObjectBatchCode;

  /**
   * 目标得分计算公式 CALC:自己计算得分 CLONE_FROM_EVA_SUBJECT:当前树克隆主树得分
   */
  @NotNull(message = "目标得分计算公式不能为空")
  @ApiModelProperty("目标得分计算公式")
  private String calcOrClone;

  /**
   * 目标得分本级与下级组合变量 RANK_CALC:计算本级得分 DOWN_CALC:计算下级得分 RANK_AND_DOWN_CALC:计算本级+下级得分
   */
  @ApiModelProperty("目标得分本级与下级组合变量")
  private String reportScoreCountFormula;

  /**
   * 主树目标得分主客观变量 SUBJECTIVE:主观得分 OBJECTIVE:客观得分 SUBJECTIVE_AND_OBJECTIVE:主观得分+客观得分
   */
  @ApiModelProperty("主树目标得分主客观变量")
  private String subAndObjModel;

  /**
   * 主观得分
   */
  @ApiModelProperty("主观得分")
  private Double subjectiveScore;

  /**
   * 客观得分
   */
  @ApiModelProperty("客观得分")
  private Double objectiveScore;

  /**
   * 过程中期得分
   */
  @ApiModelProperty("过程中期得分")
  private Double processMidCycleReportScore;

  /**
   * 中期得分
   */
  @ApiModelProperty("中期得分")
  private Double midCycleReportScore;

  /**
   * 最近平均分
   */
  @ApiModelProperty("最近平均分")
  private Double processReportAverageScore;

  /**
   * 下级目标得分
   */
  @ApiModelProperty("下级目标得分")
  private Double subTargetScore;

  /**
   * 主客观得分_主观得分权重
   */
  @ApiModelProperty("主客观得分_主观得分权重")
  private Double subjectiveScoreWeight;

  /**
   * 主客观得分_客观得分权重
   */
  @ApiModelProperty("主客观得分_客观得分权重")
  private Double objectiveScoreWeight;

  /**
   * 本级过程得分_过程中期得分权重
   */
  @ApiModelProperty("本级过程得分_过程中期得分权重")
  private Double processReportScoreProMidWeight;

  /**
   * 本级过程得分_中期目标得分权重
   */
  @ApiModelProperty("本级过程得分_中期目标得分权重")
  private Double processReportScoreMidWeight;

  /**
   * 本级过程得分_最近平均分权重
   */
  @ApiModelProperty("本级过程得分_最近平均分权重")
  private Double processReportScoreAvgWeight;

  /**
   * 目标得分_下级目标得分权重
   */
  @ApiModelProperty("目标得分_下级目标得分权重")
  private Double actualScoreLowerLevelWeight;

}
